// announcement.js - 公告相关API
import request from '../plugins/axios';

// 保留模拟数据用于前端调试和开发
const mockAnnouncements = [
  {
    id: 1,
    title: '小区停车场管理系统上线通知',
    content: '尊敬的业主，为了更好地服务大家，我们的小区停车场管理系统已经正式上线。现在您可以通过系统查询车位状态、预约车位、查看出入记录以及在线缴费。如有任何问题，请联系管理处。',
    category_id: 1,
    publisher_id: 1,
    publisher_name: '管理员',
    priority: 2,
    start_time: '2025-04-01 00:00:00',
    end_time: '2025-12-31 23:59:59',
    is_top: 1,
    status: 1,
    read_count: 156,
    created_at: '2025-04-01 09:00:00',
    updated_at: '2025-04-01 09:00:00'
  },
  {
    id: 2,
    title: '停车场A区维修通知',
    content: '因停车场A区进行设备维护，将于本周六（2025年5月13日）临时关闭，请提前安排好您的车辆停放位置。维修预计将持续8小时，在此期间您可以使用B区和C区的临时车位。感谢您的理解与配合。',
    category_id: 2,
    publisher_id: 1,
    publisher_name: '管理员',
    priority: 1,
    start_time: '2025-05-10 00:00:00',
    end_time: '2025-05-14 23:59:59',
    is_top: 1,
    status: 1,
    read_count: 87,
    created_at: '2025-05-10 10:30:00',
    updated_at: '2025-05-10 10:30:00'
  },
  {
    id: 3,
    title: '端午节停车位预约开放通知',
    content: '端午节期间（2025年6月22日至6月24日），小区将迎来访客高峰。为确保业主停车需求，我们开放预约功能，业主可提前3天预约车位。访客停车位数量有限，建议访客提前联系业主进行预约登记。预祝大家端午节快乐！',
    category_id: 3,
    publisher_id: 1,
    publisher_name: '管理员',
    priority: 1,
    start_time: '2025-06-15 00:00:00',
    end_time: '2025-06-24 23:59:59',
    is_top: 0,
    status: 1,
    read_count: 65,
    created_at: '2025-06-15 14:00:00',
    updated_at: '2025-06-15 14:00:00'
  },
  {
    id: 4,
    title: '电子支付优惠活动',
    content: '即日起至月底，使用微信或支付宝支付停车费享受9折优惠，欢迎使用。首次使用在线支付的用户还可享受额外5元优惠券，欢迎体验！',
    category_id: 3,
    publisher_id: 1,
    publisher_name: '管理员',
    priority: 0,
    start_time: '2025-05-01 00:00:00',
    end_time: '2025-05-31 23:59:59',
    is_top: 0,
    status: 1,
    read_count: 92,
    created_at: '2025-05-01 08:00:00',
    updated_at: '2025-05-01 08:00:00'
  },
  {
    id: 5,
    title: '系统升级维护公告',
    content: '系统将于本周五（2025年5月19日）凌晨2点-4点进行升级维护，期间可能影响部分功能使用，敬请谅解。升级后系统将新增车位导航、缴费记录导出等功能，欢迎使用。',
    category_id: 2,
    publisher_id: 1,
    publisher_name: '管理员',
    priority: 0,
    start_time: '2025-05-17 00:00:00',
    end_time: '2025-05-19 23:59:59',
    is_top: 0,
    status: 1,
    read_count: 53,
    created_at: '2025-05-17 10:00:00',
    updated_at: '2025-05-17 10:00:00'
  }
]

// 模拟公告分类数据
const mockCategories = [
  { id: 1, name: '系统通知', description: '系统相关的重要通知' },
  { id: 2, name: '维修通知', description: '设施维修相关通知' },
  { id: 3, name: '活动通知', description: '小区活动相关通知' },
  { id: 4, name: '安全通知', description: '安全相关的重要通知' },
  { id: 5, name: '其他', description: '其他类型通知' }
]

// 模拟阅读记录
let mockReadRecords = []

// 获取公告列表 - 使用真实API
export function getAnnouncementList(params = {}) {
  return request({
    url: '/api/announcements',
    method: 'get',
    params
  });
}

// 获取公告详情 - 使用真实API
export function getAnnouncementDetail(id) {
  return request({
    url: `/api/announcements/${id}`,
    method: 'get'
  });
}

// 获取公告分类 - 使用真实API
export function getAnnouncementCategories() {
  return request({
    url: '/api/announcement-categories',
    method: 'get'
  });
}

// 创建公告 - 使用真实API (管理员)
export function createAnnouncement(data) {
  return request({
    url: '/api/admin/announcements',
    method: 'post',
    data
  });
}

// 更新公告 - 使用真实API (管理员)
export function updateAnnouncement(id, data) {
  return request({
    url: `/api/admin/announcements/${id}`,
    method: 'put',
    data
  });
}

// 删除公告 - 使用真实API (管理员)
export function deleteAnnouncement(id) {
  return request({
    url: `/api/admin/announcements/${id}`,
    method: 'delete'
  });
}

// 获取管理员公告列表 - 使用真实API
export function getAdminAnnouncementList(params = {}) {
  return request({
    url: '/api/admin/announcements',
    method: 'get',
    params
  });
}

// 更改公告状态 - 使用真实API (管理员)
export function changeAnnouncementStatus(id, status) {
  return request({
    url: `/api/admin/announcements/${id}/status`,
    method: 'put',
    data: status,
    headers: {
      'Content-Type': 'application/json'
    },
    transformRequest: [function (data) {
      // 直接将数值转换为JSON字符串，而不是对象
      return JSON.stringify(data);
    }]
  });
} 